/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.webhomesites.locacao.model;

import br.com.webhomesites.padrao.utils.AbstractEntity;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
import javax.persistence.*;

/**
 *
 * @author Webhome
 */
@Entity
@Table(name="locrenovacaolocacao")
@NamedQueries({
@NamedQuery(name="br.com.webhomesites.locacao.model.RenovacaoLocacaoModel.findMaxId", query ="SELECT MAX(id) from RenovacaoLocacaoModel p"),
@NamedQuery(name="RenovacaoLocacaoModel.findMaxIdByIdLocacao", query ="SELECT MAX(i.id) from RenovacaoLocacaoModel i, LocacaoModel l where l.id = :idloc and i.locacaoModel.id = l.id"),
@NamedQuery(name="RenovacaoLocacaoModel.findByIdLocacao", query ="SELECT u FROM RenovacaoLocacaoModel u WHERE u.locacaoModel.id = :idloc"),
@NamedQuery(name="RenovacaoLocacaoModel.findLastRenovacaoByIdLocacao", query ="SELECT u FROM RenovacaoLocacaoModel u WHERE u.locacaoModel.id = :idloc")
})
public class RenovacaoLocacaoModel extends AbstractEntity implements Serializable {
    
   private List<RenovacaoLocacaoModel> devolucaoTotComRenovModel;
       
        //private long codigoCliente;
        
        private Date dataRenovacao;
        private int diasLocacao;
        private Date dataPrevDevolucao;
        private Double valorTotalPrevisto;
        private Date dataDevolucao;
        private Date dataPagamento;        
        private int diasCalculado;
        private Double descontoValor;
        private Double descontoPorcento;
        private Double valorTotalCalculado;
        private Double valorPagar; 
        private Double valorParcialPrevisto;
        private Double valorParcialCalculado;
        private String status;
        private String pagamento;
        private String renovacao;          
    
    private LocacaoModel locacaoModel;
    
    @ManyToOne
    @JoinColumn(name="codlocacao", referencedColumnName="codigo")
    public LocacaoModel getLocacaoModel() {
        return locacaoModel;
    }

    public void setLocacaoModel(LocacaoModel locacaoModel) {
        this.locacaoModel = locacaoModel;
    }

    @Column(name="dataDevolucao")
    @Temporal(javax.persistence.TemporalType.DATE)
        public Date getDataDevolucao() {
        return dataDevolucao;
    }

    public void setDataDevolucao(Date dataDevolucao) {
        this.dataDevolucao = dataDevolucao;
    }
    
    @Column(name="dataRenovacao")
    @Temporal(javax.persistence.TemporalType.DATE)
        public Date getDataRenovacao() {
        return dataRenovacao;
    }

    public void setDataRenovacao(Date dataRenovacao) {
        this.dataRenovacao = dataRenovacao;
    }
    
    @Column(name="datapagamento")
    @Temporal(javax.persistence.TemporalType.DATE)
        public Date getDataPagamento() {
        return dataPagamento;
    }

    public void setDataPagamento(Date dataPagamento) {
        this.dataPagamento = dataPagamento;
    }

    @Column(name="dataPrevDevolucao")
    @Temporal(javax.persistence.TemporalType.DATE)
        public Date getDataPrevDevolucao() {
        return dataPrevDevolucao;
    }

    public void setDataPrevDevolucao(Date dataPrevDevolucao) {
        this.dataPrevDevolucao = dataPrevDevolucao;
    }

    @Column(name="qtddias")
        public int getDiasLocacao() {
        return diasLocacao;
    }

    public void setDiasLocacao(int diasLocacao) {
        this.diasLocacao = diasLocacao;
    }
    
    @Column(name="qtddiascalculado")
        public int getDiasLocacaoCalculado() {
        return diasCalculado;
    }

    public void setDiasLocacaoCalculado(int diasLocacao) {
        this.diasCalculado = diasLocacao;
    }
 
    @Column(name="statusl")
    public String getStatus() {
        return status;
    }

    public void setStatus(String statusLocacao) {
        this.status = statusLocacao;
    }
    
    @Column(name="pagamento")
    public String getPagamento() {
        return pagamento;
    }

    public void setPagamento(String pagamento) {
        this.pagamento = pagamento;
    }
    
    @Column(name="renovacao")
    public String getRenovacao() {
        return renovacao;
    }

    public void setRenovacao(String renovacao) {
        this.renovacao = renovacao;
    }

    @Column(name="vlrtotalprevisto")
    public double getValorTotalPrevisto() {
        return valorTotalPrevisto;
    }

    public void setValorTotalPrevisto(double valorTotalLocacao) {
        this.valorTotalPrevisto = valorTotalLocacao;
    }
    
    @Column(name="vlrtotalcalculado", nullable=true)
    public double getValorTotalCalculado() {
        return valorTotalCalculado;
    }

    public void setValorTotalCalculado(double valorTotalCalculadoLocacao) {
        this.valorTotalCalculado = valorTotalCalculadoLocacao;
    }
    
    @Column(name="vlrparcialcalculado", nullable=true)
    public Double getValorParcialCalculado() {
        return valorParcialCalculado;
    }

    public void setValorParcialCalculado(Double valorParcialCalculado) {
        this.valorParcialCalculado = valorParcialCalculado;
    }

    @Column(name="vlrpaarcialprevisto", nullable=true)
    public Double getValorParcialPrevisto() {
        return valorParcialPrevisto;
    }

    public void setValorParcialPrevisto(Double valorParcialPrevisto) {
        this.valorParcialPrevisto = valorParcialPrevisto;
    }   
 
    @Override
    public String toString() {
        return "Código Locação = " + getId() + "\n"
                //+ "Código Cliente = " + getCodigoCliente() + "\n"
                + "Dias locação = " + getDiasLocacao() + "\n"
                + "Data devolução = " + getDataDevolucao() + "\n"
                + "Status Locação = " + getStatus() + "\n";
    }

    @Column(name="vlrdesconto", nullable=true)
    public Double getDescontoValor() {
        return descontoValor;
    }

    public void setDescontoValor(Double desconto) {
        this.descontoValor = desconto;
    }
    
    @Column(name="vlrdescontoporcento", nullable=true)
    public Double getDescontoPorcento() {
        return descontoPorcento;
    }

    public void setDescontoPorcento(Double desconto) {
        this.descontoPorcento = desconto;
    }
    
    @Column(name="vlrpago", nullable=true)
    public Double getValorPagar() {
        return valorPagar;
    }

    public void setValorPagar(Double valorPagar) {
        this.valorPagar = valorPagar;
    }

    @OneToMany(mappedBy = "locacaoModel")
    public List<RenovacaoLocacaoModel> getDevolucaoTotComRenovModel() {
        return devolucaoTotComRenovModel;
    }

    public void setDevolucaoTotComRenovModel(List<RenovacaoLocacaoModel> devolucaoTotComRenovModel) {
        this.devolucaoTotComRenovModel = devolucaoTotComRenovModel;
    }
}
